In category theory, a strong monad is a monad on a monoidal category with an additional natural transformation, called the strength, which governs how the monad interacts with the monoidal product.
Strong monads play an important role in theoretical computer science where they are used to model computation with side effects.
Definition
A (left) strong monad is a monad (T, η, μ) over a monoidal category (C, ⊗, I) together with a natural transformation tA,B : A ⊗ TB → T(A ⊗ B), called (tensorial) left strength, such that the diagrams
, , , andcommute for every object A, B and C.
Commutative strong monads
For every strong monad T on a symmetric monoidal category, a right strength natural transformation can be defined by
t A , B ′ = T ( γ B , A ) ∘ t B , A ∘ γ T A , B : T A ⊗ B → T ( A ⊗ B ) . {\displaystyle t'_{A,B}=T(\gamma _{B,A})\circ t_{B,A}\circ \gamma _{TA,B}:TA\otimes B\to T(A\otimes B).}
A strong monad T is said to be commutative when the diagram
commutes for all objects A {\displaystyle A} and B {\displaystyle B} .
Properties
The Kleisli category of a commutative monad is symmetric monoidal in a canonical way, see corollary 7 in Guitart2 and corollary 4.3 in Power & Robison.3 When a monad is strong but not necessarily commutative, its Kleisli category is a premonoidal category.
One interesting fact about commutative strong monads is that they are "the same as" symmetric monoidal monads.4 More explicitly,
- a commutative strong monad ( T , η , μ , t ) {\displaystyle (T,\eta ,\mu ,t)} defines a symmetric monoidal monad ( T , η , μ , m ) {\displaystyle (T,\eta ,\mu ,m)} by m A , B = μ A ⊗ B ∘ T t A , B ′ ∘ t T A , B : T A ⊗ T B → T ( A ⊗ B ) {\displaystyle m_{A,B}=\mu _{A\otimes B}\circ Tt'_{A,B}\circ t_{TA,B}:TA\otimes TB\to T(A\otimes B)}
- and conversely a symmetric monoidal monad ( T , η , μ , m ) {\displaystyle (T,\eta ,\mu ,m)} defines a commutative strong monad ( T , η , μ , t ) {\displaystyle (T,\eta ,\mu ,t)} by t A , B = m A , B ∘ ( η A ⊗ 1 T B ) : A ⊗ T B → T ( A ⊗ B ) {\displaystyle t_{A,B}=m_{A,B}\circ (\eta _{A}\otimes 1_{TB}):A\otimes TB\to T(A\otimes B)}
and the conversion between one and the other presentation is bijective.
External links
- Strong monad at the nLab
References
Moggi, Eugenio (July 1991). "Notions of computation and monads" (PDF). Information and Computation. 93 (1): 55–92. doi:10.1016/0890-5401(91)90052-4. http://www.disi.unige.it/person/MoggiE/ftp/ic91.pdf ↩
Guitart, René (1980). "Tenseurs et machines". Cahiers de topologie et géométrie différentielle. 21 (1): 5–62. ISSN 2681-2398. http://www.numdam.org/item/?id=CTGDC_1980__21_1_5_0 ↩
Power, John; Robinson, Edmund (October 1997). "Premonoidal categories and notions of computation". Mathematical Structures in Computer Science. 7 (5): 453–468. doi:10.1017/S0960129597002375. ISSN 0960-1295. https://www.cambridge.org/core/product/identifier/S0960129597002375/type/journal_article ↩
Kock, Anders (1972-12-01). "Strong functors and monoidal monads". Archiv der Mathematik. 23 (1): 113–120. doi:10.1007/BF01304852. ISSN 1420-8938. https://link.springer.com/article/10.1007/BF01304852 ↩